package concursos.daos;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.TypedQuery;

import concursos.modelos.Concurso;
import concursos.modelos.Conteudo;

public class ConteudoDAO {

	private EntityManager manager;

	public ConteudoDAO(EntityManager manager) {
		this.manager = manager;
	}

	public void salvarConteudo(Conteudo conteudo) {
		if (conteudo.getId() == 0)
			this.manager.persist(conteudo);
		else{
			System.out.println("Atualizando conteudo...");
			Conteudo temp = this.manager.find(Conteudo.class, conteudo.getId());
			temp.setNome(conteudo.getNome());
			temp.setObservacao(conteudo.getObservacao());
			this.manager.merge(conteudo);
		}
	}

	public void excluirConteudo(Conteudo conteudo) {
		this.manager.remove(manager.getReference(Conteudo.class,
				conteudo.getId()));
	}

	public List<Conteudo> listarConteudo(int usuario) {
		TypedQuery<Conteudo> query = this.manager.createQuery(
				"select x from Conteudo x where x.concurso.usuario.id = :usuario", Conteudo.class);
		query.setParameter("usuario", usuario);
		return query.getResultList();
	}

	public Conteudo buscaPorId(int id) {
		Conteudo conteudo = this.manager.find(Conteudo.class, id);
		return conteudo;
	}

	public List<Conteudo> buscarPorDisciplina(int id) {
		TypedQuery<Conteudo> query = this.manager.createQuery(
				"select x from Conteudo x where x.disciplina.id = :id",
				Conteudo.class);
		
		query.setParameter("id", id);

		return query.getResultList();
	}

}
